iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0

在以前,如果需要讓程式在特定時間執行某些指令或函式,大概會做跟下面差不多的事情:

  1. 讀取當前時間
  2. 計算當前時間到特定時間的時間差異
  3. 讓程式 sleep 到那時候
  4. 呼叫對應的指令或函式

如果這些事情執行次數不只一次,那麼可能還會加上 for loop 和每一次週期需要休息的時間。

  • 平日執行,假日要休息
  • 每個月 1 號和 15 號要執行
  • ...
    還有其他各式各樣可能的排程需求

在作業系統中本身也有各式各樣的任務會透過排程來處理,像是 win10 的工作排程器和我們今天的主角 cron 都是為了這個需求而誕生的。

cron 誕生的時間很早,在 unix 時期 (70年代) 就已經存在,後來隨著系統演進,Linux 和 MacOS 也繼承了它。

使用方法:

  1. 透過 crontab 指令把工作排程加入
  2. 直接編輯系統中的 crontab 文件

這是一個 crontab 內的排程範例:
1 0 * * * printf "" > /var/log/apache/error_log

前面五個數字和 * 組成的東西是用來控制 corntab 在不同時間粒度(分鐘、小時、日、月、星期)下的值。因為這種表達式不太適合人類閱讀和撰寫,所以後來有其他人提供比較友善的操作介面,可以輸入比較接近一般英文的方式,然後幫你生成對應的 corn 表達式。

以上,今天簡單介紹一個蠻方便的系統服務,謝謝縮看

Ref

  1. Cron - 維基百科,自由的百科全書
  2. 鳥哥私房菜 - 第十五章、例行性工作排程(crontab)
  3. Crontab.guru cron 表達式翻譯

上一篇
陸。程式守護者 Supervisor
下一篇
捌。認識串流
系列文
程式小萌新的學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言